package pe.com.stefanini.core.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * formato de fechas
 * 
 * @author mcornetero
 *
 */
public class Fecha
{

	//
	public static String FormatoFechaDDMMAAAA(String strFecha)
	{
		if (strFecha.trim().length()==0) { return "";}
		
		String[] arrFecha = strFecha.split("-");
		if (arrFecha.length == 3)
		{
			String ano = arrFecha[0];
			String mes = arrFecha[1];
			String dia = arrFecha[2];
			String fecha = dia + "/" + mes + "/" + ano;
			
			if (!validarFecha(fecha, "dd/MM/yyyy")) { return "0"; }			
			return fecha;
		}
		else
		{
			return "0";
		}
	}

	public static String ObtenerHoraActual()
	{
		String hora;
		Calendar cal = Calendar.getInstance();
		hora = "0" + cal.get(Calendar.HOUR_OF_DAY);
		String minutos = "0" + cal.get(Calendar.MINUTE);
		return hora.substring(hora.length() - 2) + ":" + minutos.substring(minutos.length() - 2);
	}

	public static Date ObtenerFechaActual()
	{
		Calendar cal = Calendar.getInstance();
		return cal.getTime();
	}

	public static boolean validarFecha(String fecha, String patron)
	{
		if (fecha == null) return false;

		SimpleDateFormat dateFormat = new SimpleDateFormat(patron);

		if (fecha.trim().length() != dateFormat.toPattern().length()) return false;

		dateFormat.setLenient(false);

		try
		{
			dateFormat.parse(fecha.trim());
		}
		catch (ParseException pe)
		{
			return false;
		}
		return true;
	}
	
	/// <summary>
    /// obtiene la hora hh:mm
    /// </summary>
    /// <param name="strHoraMinuto"></param>
    /// <returns></returns>
	public static int GetHora(String strHoraMinuto)
    {
        return Integer.valueOf(strHoraMinuto.substring(0, 2));
    }

    /// <summary>
    /// Obtiene los minutos hh:mm
    /// </summary>
    /// <param name="strHoraMinuto"></param>
    /// <returns></returns>
    public static int GetMinutos(String strHoraMinuto)
    {
        return Integer.valueOf(strHoraMinuto.substring(3, 5));
    }

}